package com.zhouxiaoge.反射;

/**
 * @author 周小哥  gqzmy@163.com 2023/3/5 20:19
 * <p>
 * 获取Class对象的三种方式
 */

public class ReflectDemo {

    public static void main(String[] args) throws ClassNotFoundException {
        // 第一种，通过实例化对象的getClass()方法实现反射
        Student student = new Student();
        Class<? extends Student> firstClass = student.getClass();
        System.out.println(firstClass.getName());

        // 第二种，使用类的静态class属性获取该类的Class对象
        Class<Student> secondClass = Student.class;
        System.out.println(secondClass.getName());

        System.out.println(firstClass == secondClass); // true

        // 第三种，通过Class.forName()方法
        Class<?> thirdlyClass = Class.forName("com.zhouxiaoge.反射.Student");
        System.out.println(thirdlyClass.getName());
        System.out.println(thirdlyClass == secondClass); // true
    }
}
